Arquitetura Técnica do Sistema RAG: Agente de Inteligência Contabilizei
Esta seção descreve o funcionamento lógico e a infraestrutura do motor de Retrieval-Augmented Generation (RAG) projetado para o Agente de IA da Contabilizei .
Figura 1: Pipeline de Ingestão de Dados (ETL) – Demonstração do fluxo desde a coleta das fontes (Blog, Chat, Site) até a indexação híbrida no Vertex AI e Firestore.
A solução foi arquitetada sobre o Google Cloud Platform (GCP) com foco em três pilares: precisão tributária, segurança de dados (LGPD) e eficiência de custo (FinOps) .
A arquitetura é dividida em dois grandes fluxos:
- Pipeline de Ingestão de Dados (ETL)
- Fluxo de Execução Cognitiva (Runtime) .
1. Contexto dos Dados e Estratégia de Ingestão (ETL)
O sistema consome três fontes de dados distintas, exigindo estratégias de processamento (Chunking) diferenciadas para maximizar a recuperação da informação .
As Fontes de Dados
- Blog Contabilizei (780+ Artigos): Conteúdo denso e legislativo .
- Histórico de Atendimento (Conversas Reais): Dados não estruturados ("sujos") que representam a voz do cliente .
- Site Institucional: Dados estruturados sobre planos e serviços .
O Pipeline de Processamento (Batch)
O processo de ingestão não ocorre em tempo real, mas via Cloud Run Jobs (processamento em lote), garantindo economia de recursos.
1. Higienização e Normalização (Scripts Python)
Antes de entrar na nuvem, scripts dedicados convertem todas as fontes para o formato Markdown .
Justificativa: O Markdown preserva a estrutura semântica (títulos, negritos) e, crucialmente, mantém a legibilidade de tabelas tributárias, que seriam perdidas em texto puro .
Nota: No caso das conversas de chat, utilizamos uma LLM intermediária para extrair pares limpos de Pergunta & Resposta (Q&A), descartando ruídos da conversa ("oi", "bom dia") .
2. Staging Area (Cloud Storage)
Os arquivos Markdown normalizados são depositados em um bucket do Google Cloud Storage . Isso desacopla a coleta do processamento, criando um "Data Lake" de documentos brutos para auditoria futura .
3. Estratégias de Fragmentação (Chunking Inteligente)
O "Ingestion Worker" (Cloud Run Job) lê os arquivos e aplica estratégias distintas baseadas no tipo de conteúdo :
- Parent-Child Chunking (Para Blogs/Leis): O documento é quebrado em fragmentos pequenos ("Filhos") para a busca vetorial, mas mantém o vínculo com o bloco de texto maior ("Pai").
Justificativa: Permite encontrar um trecho específico (ex: uma alíquota), mas entrega para a IA o parágrafo inteiro (contexto), evitando que exceções legais sejam cortadas .
- Atomic Chunking (Para Q&A): O par "Pergunta + Resposta" é tratado como uma unidade indivisível .
4. Indexação Híbrida (Vertex AI + Firestore)
Adotamos uma arquitetura de separação de responsabilidades para performance extrema :
- Vertex AI Vector Search: Armazena apenas os vetores (Embeddings gerados pelo modelo
text-embedding-3-smallda OpenAI). É otimizado para busca matemática de similaridade em milissegundos . - Google Firestore: Armazena o conteúdo textual (Payload) e metadados.
Quando o Vertex AI encontra o "ID" do vetor mais próximo, o sistema busca o texto completo no Firestore .
2. Fluxo de Execução Cognitiva (Runtime)
Quando um usuário envia uma mensagem, o sistema segue um pipeline rigoroso de segurança e orquestração antes de gerar qualquer resposta.
Figura 2: Fluxo de Execução (Runtime) – Detalhamento das camadas de segurança (Edge), classificação de intenção e orquestração da resposta via RAG.
Camada 1: Segurança e Proteção (Edge)
Antes de invocar modelos caros, a requisição passa por filtros de proteção :
- Rate Limiting (Redis): Bloqueia abusos e ataques DDoS baseados em volume de requisições, protegendo o orçamento.
- PII Masking (DLP): Um middleware intercepta dados sensíveis (CPF, Salário, E-mail) e os substitui por tokens seguros (ex:
<CPF_ID>) .Justificativa: Garante que dados pessoais de clientes nunca sejam enviados para a API da OpenAI, assegurando conformidade total com a LGPD .
- Input Guardrails: Verifica tentativas de "Jailbreak" ou "Prompt Injection" para manipular o comportamento do bot .
Camada 2: Orquestração e Raciocínio (Cloud Run)
O "Cérebro" do sistema é uma aplicação Python (FastAPI) no Cloud Run :
- Router de Intenção: Classifica a pergunta.
- Se for uma intenção de compra, desvia para um fluxo de SDR (Sales Development) para coleta de leads .
- Se for técnica, aciona o motor RAG .
- Recuperação (Retrieval):
- Converte a pergunta do usuário em vetor (OpenAI).
- Consulta o Vertex AI para obter os IDs dos documentos mais relevantes .
- Recupera os textos originais ("Pais" ou Respostas de FAQ) no Firestore .
- Re-ranking (Cross-Encoder):
- Uma etapa de refinamento onde um modelo especializado reordena os documentos recuperados, garantindo que o topo da lista seja semanticamente preciso para a pergunta fiscal específica .
Camada 3: Geração e Auditoria
- Geração (LLM): O prompt é montado com o contexto recuperado e enviado ao GPT-4o . O modelo atua estritamente com base nos dados fornecidos ("Grounding"), minimizando alucinações .
- Output Guardrails: A resposta gerada é verificada contra termos proibidos ou consultoria jurídica indevida .
- PII Unmasking: Se a resposta for segura, os tokens
<CPF_ID>são revertidos para os dados originais do usuário . - Traceability: Todo o processo (Prompt, Documentos Usados, Latência, Tokens) é logado no Cloud Logging para auditoria e melhoria contínua .
Esta arquitetura garante que a Contabilizei disponha de um agente que não apenas responde, mas que opera dentro de limites estritos de segurança, conformidade e precisão técnica .